void main() {
  int i = 8; //默认为不可空，必须在定义时初始化。
  int? j; // 定义为可空类型，对于可空变量，我们在使用前必须判空。
  String ? str;

  // 如果我们预期变量不能为空，但在定义时不能确定其初始值，则可以加上late关键字，
  // 表示会稍后初始化，但是在正式使用它之前必须得保证初始化过了，否则会报错
  late int k;
  k=9;

  // 可空变量 判空
  if (j == null) {
    print("j is null");
  } else {
    print("j is not null");
  }

  if (str == null) {
    print("str is null");
  } else {
    print("str is not null");
  }

  if (str == "") {
    print("str is empty");
  } else {
    print("str is not empty");
  }
}
